package com.ruoyi.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 商城订单对象 jiajia_mall_order
 *
 * @author ruoyi
 * @date 2025-03-05
 */
public class JiajiaMallOrderVo
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderNum;

    private String refundReason;

    @Excel(name = "地址簿Id")
    private Long addressId;

    public Long getAddressId() {
        return addressId;
    }

    public void setAddressId(Long addressId) {
        this.addressId = addressId;
    }

    /** 用户id */
    @Excel(name = "用户id")
    private Long uid;

    /** 支付回调id */
    @Excel(name = "支付回调id")
    private String transactionId;

    /** 订单说明 */
    @Excel(name = "订单说明")
    private String orderDescription;

    /** 订单数据包 */
    @Excel(name = "订单数据包")
    private String orderData;

    /** 订单备注 */
    @Excel(name = "订单备注")
    private String orderNotes;

    /** 订单金额 */
    @Excel(name = "订单金额")
    private BigDecimal totalPrice;

    /** 订单状态（0 未支付，1超时取消，2已支付，3申请取消中，4已取消，5已退款） */
    @Excel(name = "订单状态", readConverterExp = "0未支付，1超时取消，2已支付，3已发货，4确认收货，5申请取消中，6已取消，7已退款")
    private String orderStatus;
    /** 创建者 */
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新者 */
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;


    /** 是否删除 */
    @Excel(name = "是否删除")
    private Integer deleted;

    private String shopName;

    private String productName;


    /** 大类id */
    @Excel(name = "大类id")
    private String productType;

    /** 小类id */
    @Excel(name = "小类id")
    private String productLevel;



    /** 产品图片ids */
    @Excel(name = "产品图片ids")
    private String photoUrlIds;

    /** 产品图片id */
    @Excel(name = "产品图片id")
    private String photoUrlId;

    /** 产品描述 */
    @Excel(name = "产品描述")
    private String productDescribe;

    /** 产品产地 */
    @Excel(name = "产品产地")
    private String productOrigin;

    private String deptId;

    public String getDeptId() {
        return deptId;
    }

    public void setDeptId(String deptId) {
        this.deptId = deptId;
    }

    public String getRefundReason() {
        return refundReason;
    }

    public void setRefundReason(String refundReason) {
        this.refundReason = refundReason;
    }

    /** 产品质量 */
    @Excel(name = "产品质量")
    private String productQuality;

    /** 产品价格 */
    @Excel(name = "产品价格")
    private BigDecimal productPrice;


    @Excel(name = "产品价格")
    private BigDecimal productNum;

    @Excel(name = "产品价格")
    private BigDecimal productTotalPrice;

    @Excel(name = "积分")
    private BigDecimal points;

    @Excel(name = "实付金额")
    private BigDecimal actualPrice;
    @Excel(name = "利润积分")
    private BigDecimal profitPoints;

    @Excel(name = "排队积分")
    private BigDecimal queuePoints;

    @Excel(name = "自由积分")
    private BigDecimal freePoints;

    public BigDecimal getProfitPoints() {
        return profitPoints;
    }

    public void setProfitPoints(BigDecimal profitPoints) {
        this.profitPoints = profitPoints;
    }

    public BigDecimal getQueuePoints() {
        return queuePoints;
    }

    public void setQueuePoints(BigDecimal queuePoints) {
        this.queuePoints = queuePoints;
    }

    public BigDecimal getFreePoints() {
        return freePoints;
    }

    public void setFreePoints(BigDecimal freePoints) {
        this.freePoints = freePoints;
    }

    public BigDecimal getPoints() {
        return points;
    }

    public void setPoints(BigDecimal points) {
        this.points = points;
    }

    public BigDecimal getActualPrice() {
        return actualPrice;
    }

    public void setActualPrice(BigDecimal actualPrice) {
        this.actualPrice = actualPrice;
    }

    public BigDecimal getProductNum() {
        return productNum;
    }

    public void setProductNum(BigDecimal productNum) {
        this.productNum = productNum;
    }

    public BigDecimal getProductTotalPrice() {
        return productTotalPrice;
    }

    public void setProductTotalPrice(BigDecimal productTotalPrice) {
        this.productTotalPrice = productTotalPrice;
    }

    public String getProductType() {
        return productType;
    }

    public void setProductType(String productType) {
        this.productType = productType;
    }

    public String getProductLevel() {
        return productLevel;
    }

    public void setProductLevel(String productLevel) {
        this.productLevel = productLevel;
    }

    public String getPhotoUrlIds() {
        return photoUrlIds;
    }

    public void setPhotoUrlIds(String photoUrlIds) {
        this.photoUrlIds = photoUrlIds;
    }

    public String getPhotoUrlId() {
        return photoUrlId;
    }

    public void setPhotoUrlId(String photoUrlId) {
        this.photoUrlId = photoUrlId;
    }

    public String getProductDescribe() {
        return productDescribe;
    }

    public void setProductDescribe(String productDescribe) {
        this.productDescribe = productDescribe;
    }

    public String getProductOrigin() {
        return productOrigin;
    }

    public void setProductOrigin(String productOrigin) {
        this.productOrigin = productOrigin;
    }

    public String getProductQuality() {
        return productQuality;
    }

    public void setProductQuality(String productQuality) {
        this.productQuality = productQuality;
    }

    public BigDecimal getProductPrice() {
        return productPrice;
    }

    public void setProductPrice(BigDecimal productPrice) {
        this.productPrice = productPrice;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setOrderNum(String orderNum)
    {
        this.orderNum = orderNum;
    }

    public String getOrderNum()
    {
        return orderNum;
    }
    public void setUid(Long uid)
    {
        this.uid = uid;
    }

    public Long getUid()
    {
        return uid;
    }
    public void setTransactionId(String transactionId)
    {
        this.transactionId = transactionId;
    }

    public String getTransactionId()
    {
        return transactionId;
    }
    public void setOrderDescription(String orderDescription)
    {
        this.orderDescription = orderDescription;
    }

    public String getOrderDescription()
    {
        return orderDescription;
    }
    public void setOrderData(String orderData)
    {
        this.orderData = orderData;
    }

    public String getOrderData()
    {
        return orderData;
    }
    public void setOrderNotes(String orderNotes)
    {
        this.orderNotes = orderNotes;
    }

    public String getOrderNotes()
    {
        return orderNotes;
    }
    public void setTotalPrice(BigDecimal totalPrice)
    {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice()
    {
        return totalPrice;
    }
    public void setOrderStatus(String orderStatus)
    {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus()
    {
        return orderStatus;
    }
    public void setDeleted(Integer deleted)
    {
        this.deleted = deleted;
    }

    public Integer getDeleted()
    {
        return deleted;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("orderNum", getOrderNum())
                .append("uid", getUid())
                .append("transactionId", getTransactionId())
                .append("orderDescription", getOrderDescription())
                .append("orderData", getOrderData())
                .append("orderNotes", getOrderNotes())
                .append("totalPrice", getTotalPrice())
                .append("orderStatus", getOrderStatus())
                .append("deleted", getDeleted())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
